package com.byq.mm.smartlib.obd.commands;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.Serializable;
import java.util.ArrayList;

public interface ObdCommand extends Serializable{

	/**
	 * * Sends the OBD-II request and deals with the response. * * This method
	 * CAN be overriden in fake commands.
	 */
	public abstract void run(InputStream in, OutputStream out)
			throws IOException, InterruptedException;

	public abstract String getFormattedResult();

	public abstract String getName();
	public abstract byte[] getByteResult();
	abstract public String getRequestKey();
	abstract public String getResponseKey();
}